#Week 07 课堂笔记   date:2021/10/11
#知识点   一：列表的一般方法；二：列表的高级方法；三：列表的复制
#元组、序列有顺序的值，索引和值，
#列表 取值->1.index 索引取单个值 2.slice 切片取一些值  还是一个列表

#names = "Alex,Marry,Jack"
#        01234……
#names_list = ["Alex","Marry","Jack"]
##              0
#print(names[0:4])
#print(names_list[0])



#一、列表的一般方法
# python中一切皆是对象 （课本P49），列表可能包含不同类型的项目，但通常这些项目都具有相同的类型。
#列表的方法是会改变列表
#1.列表增加
#1.1 append() 增加元素到list的末位
#    append() 一般用来新建列表会使用到

#例1：
names_J = []

names = ["Marry","Alex","Jan","Jack"]
names.append("Zhichao")
names.append("Youge")
for i in names:
    if i[0] == "J":
        names_J.append(i)
print("names_J=",names_J)
print(names)

#1.2 insert() 插入元素  指定位置增加，插入第几个位置写数字几+1
names.insert(2,"lihua")
print("插入lihua之后的names:",names)

#1.3 删除/移除
#1.3.1 remove()  使用remove之前，应该先判断该元素是否存在该list当中
# ctrl + /  多行添加注释
# print("Zhichao"in names)
# names_user = input("删除内容")
# while True:
#     if names_user in names:
#         names.remove(names_user)
#     else:
#         break
#     if "Zhichao" in names:
#         names.remove()
# #names.remove("Zhichao")
# print("remove之后的names:",names)

#1.3.2 pop() 删除  pop()不填内容  对应记忆==>append() 删除末位
#names.pop()
#print(names)

#列表的高级用法     如果删除两个Zhichao，则：
#stu_成绩 = [97，95，93，95，92，96，92，95，100]
#目标：使用pop()删除成绩为95的所有值  (?可以用除法判断吗? 即95%95 ==0)

# 本质：List 本身有index & value
pop_index_list = []
for index,value in enumerate(stu_成绩):
    # print(index,value)
    if value == 95:
        # stu_成绩.pop(index)
        stu_成绩[index] += 1
        # print(index,value)
print(stu_成绩)

#1.3.3 index
#print(names.index("Zhichao"))

#1.3.4 sort()排序  默认从小到大排序  reverse= Fales（默认） 小-大
#                                reverse= True（默认） 大-小
stu_成绩.sort（reverse=True）
print(stu_成绩)
names.sort()#字符串 以首字母按照ASCII编码表顺序排序
print(names)

#1.3.5  count() 查看某元素的次数
print(stu_成绩.count(95))

#1.3.6 clear（），清空list
# names.clear()
# print(names)

#1.3.7 extend()是有顺序的，操作哪一个列表，哪一个列表先写
names.extend(names_J)
print(names)

#1.3.8

##三、列表的复制

#1.假复制  用 = 进行赋值 列表本身就是一个可修改的数据结构
# names = ["Mike","Mary","Jan","Jack"]
# names_源文件 = names[:]
# names.append("Zhichao")
# print("names=",names)
# print("names_源文件 = "，names_源文件)


# 3.正确的方法2：  切片



